Electronic devices, such as mobile phones and personal digital assistants (PDA's), often contain firmware and application software that are either provided by the manufacturers of the electronic devices, by telecommunication carriers, or by third parties.
An update of firmware or firmware components typically involves procedures to be performed in a careful and error free manner. If errors occur, the device may be left in a partially or fully non-functional state. It is desirable to perform such updates using a fault tolerant mechanism. Fault tolerant code, however, is generally complex, and normally difficult to successfully implement.
Attempts to upgrade firmware and/or software in electronic devices, such as mobile phones, are often hampered by limited user interaction capabilities and slow communication speeds on these devices. In addition, when a user determines that there is an error with an electronic device, such as a mobile phones, the user often has limited recourse to having it corrected, and is often left with taking it back to a service center of the manufacturer to have the firmware/software modified or replaced.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with the present invention as set forth in the remainder of the present application with reference to the drawings.